home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / man / cmds.fmt / sc.man < prev    next >
Text File  |  1992-05-30  |  71KB  |  1,849 lines

  1.  
  2.  
  3.  
  4. SC                   UNKNOWN MANUAL SECTION                   SC
  5.  
  6.  
  7.  
  8.      6.21  1
  9.  
  10. NNAAMMEE
  11.      sc - spreadsheet calculator
  12.  
  13. SSYYNNOOPPSSIISS
  14.      sscc [ --cc ] [ --mm ] [ --nn ] [ --rr ] [ --xx ] [ _f_i_l_e ]
  15.  
  16. DDEESSCCRRIIPPTTIIOONN
  17.      The spreadsheet calculator _s_c is based on rectangular tables
  18.      much like a financial spreadsheet.  When invoked it presents
  19.      you with a table organized as rows and columns of cells.  If
  20.      invoked without a _f_i_l_e argument, the table is initially
  21.      empty.  Otherwise _f_i_l_e is read in (see the _G_e_t command
  22.      below).  Each cell may have associated with it a numeric
  23.      value, a label string, and/or an expression (formula) which
  24.      evaluates to a numeric value or label string, often based on
  25.      other cell values.
  26.  
  27.      For a on-line tutorial, type the command:
  28.  
  29.           sc /sprite/lib/sc/tutorial.sc
  30.  
  31.      To print a quick reference card, type the command:
  32.  
  33.           scqref | [your_printer_commmand]
  34.  
  35. OOPPTTIIOONNSS
  36.      --cc   Start the program with the recalculation being done in
  37.           column order.
  38.  
  39.      --mm   Start the program with automatic recalculation dis-
  40.           abled.  The spreadsheet will be recalculated only when
  41.           the ``@'' command is used.
  42.  
  43.      --nn   Start the program in quick numeric entry mode (see
  44.           below).
  45.  
  46.      --rr   Start the program with the recalculation being done in
  47.           row order (default option).
  48.  
  49.      --xx   Cause the _G_e_t and _P_u_t commands (see below) to encrypt
  50.           and decrypt data files.
  51.  
  52.      --RR   Start the program with automatic newline action set to
  53.           increment the row (see below).
  54.  
  55.      --CC   Start the program with automatic newline action set to
  56.           increment the column (see below).
  57.  
  58.      All of these options can be changed with the ^_T and _S com-
  59.      mands (see below) while _s_c is running.  Options specified
  60.  
  61.  
  62.  
  63. Sprite v1.0                                                     1
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SC                   UNKNOWN MANUAL SECTION                   SC
  71.  
  72.  
  73.  
  74.      when _s_c is invoked override options saved in the data file.
  75.  
  76.      GGeenneerraall IInnffoorrmmaattiioonn
  77.      The screen is divided into four regions.  The top line is
  78.      for entering commands and displaying cell values.  The
  79.      second line is for messages from _s_c.  The third line and the
  80.      first four columns show the column and row numbers, from
  81.      which are derived cell addresses, e.g.  _A_0 for the cell in
  82.      column A, row 0.  Note that column names are case-
  83.      insensitive: you can enter _A_0 or _a_0.
  84.  
  85.      The rest of the screen forms a window looking at a portion
  86.      of the table.  The total number of display rows and columns
  87.      available, hence the number of table rows and columns
  88.      displayed, is set by _c_u_r_s_e_s(3) and may be overridden by set-
  89.      ting the LINES and COLUMNS environment variables, respec-
  90.      tively.
  91.  
  92.      The screen has two cursors: a cell cursor, indicated by a
  93.      highlighted cell and a ``<'' on the screen, and a character
  94.      cursor, indicated by the terminal's hardware cursor.  The
  95.      cell and character cursors are often the same.  They differ
  96.      when you type a command on the top line.
  97.  
  98.      If a cell's numeric value is wider than the column width
  99.      (see the _f command), the cell is filled with asterisks.  If
  100.      a cell's label string is wider than the column width, it is
  101.      truncated at the start of the next non-blank cell in the
  102.      row, if any.
  103.  
  104.      Cursor control commands and row and column commands can be
  105.      prefixed by a numeric argument which indicates how many
  106.      times the command is to be executed.  You can type ^_U before
  107.      a repeat count if quick numeric entry mode is enabled or if
  108.      the number is to be entered while the character cursor is on
  109.      the top line.
  110.  
  111.      Commands which use the terminal's control key, such as ^_N,
  112.      work both when a command is being typed and when in normal
  113.      mode.
  114.  
  115.      CChhaannggiinngg OOppttiioonnss
  116.  
  117.      ^^TT_o  Toggle options.  This command allows you to switch the
  118.           state of one option selected by _o.  A small menu lists
  119.           the choices for _o when you type ^_T.  The options
  120.           selected are saved when the data and formulas are saved
  121.           so that you will have the same setup next time you
  122.           enter the spreadsheet.
  123.  
  124.           aa    Automatic Recalculation.  When set, each change in
  125.                the spreadsheet causes the entire spreadsheet be
  126.  
  127.  
  128.  
  129. Sprite v1.0                                                     2
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SC                   UNKNOWN MANUAL SECTION                   SC
  137.  
  138.  
  139.  
  140.                recalculated.  Normally this is not noticeable,
  141.                but for very large spreadsheets, it may be faster
  142.                to clear automatic recalculation mode and update
  143.                the spreadsheet via explicit ``@'' commands.
  144.                Default is automatic recalculation on.
  145.  
  146.           cc    Current cell highlighting.  If enabled, the
  147.                current cell is highlighted (using the terminal's
  148.                standout mode, if available) in addition to being
  149.                marked by the cell cursor.
  150.  
  151.           ee    External function execution.  When disabled,
  152.                external functions (see @_e_x_t() below) are not
  153.                called.  This saves a lot of time at each screen
  154.                update.  External functions are disabled by
  155.                default.  If disabled, and external functions are
  156.                used anywhere, a warning is printed each time the
  157.                screen is updated, and the result of @_e_x_t() is the
  158.                value from the previous call, if any, or a null
  159.                string.
  160.  
  161.           ll    Autolabeling.  If enabled, using the define com-
  162.                mand (/d) causes a label to be automatically gen-
  163.                erated in the cell to the left of the defined
  164.                cell.  This is only done if the cell to the left
  165.                is empty.  Default is enabled.
  166.  
  167.           nn    Quick numeric entry.  If enabled, a typed digit is
  168.                assumed to be the start of a numeric value for the
  169.                current cell, not a repeat count, unless preceded
  170.                by ^_U.  The cursor controls (^_P, ^_N, ^_B, ^_F) in
  171.                this mode will end a numeric entry.
  172.  
  173.           tt    Top line display.  If enabled, the name and value
  174.                of the current cell is displayed on the top line.
  175.                If there is an associated label string, the first
  176.                character of the string value is ``|'' for a cen-
  177.                tered string, ``<'' for a leftstring or ``>'' for
  178.                a rightstring (see below), followed by "_s_t_r_i_n_g"
  179.                for a constant string or {_e_x_p_r} for a string
  180.                expression.  A constant string may be preceeded
  181.                with a backslash (`\').  In this case the constant
  182.                string will be used as a ``wheel'' to fill a
  183.                column, e.g. "\-" for a line in a column, and
  184.                "\Yeh " for "Yeh Yeh Ye".  If the cell has a
  185.                numeric value, it follows as [_v_a_l_u_e], which may be
  186.                a constant or expression.
  187.  
  188.           xx    Encryption.  See the --xx option.
  189.  
  190.           $$    Dollar prescale.  If enabled, all numeric ccoonn--
  191.                ssttaannttss (not expressions) which you enter are
  192.  
  193.  
  194.  
  195. Sprite v1.0                                                     3
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. SC                   UNKNOWN MANUAL SECTION                   SC
  203.  
  204.  
  205.  
  206.                multipled by 0.01 so you don't have to keep typing
  207.                the decimal point if you enter lots of dollar fig-
  208.                ures.
  209.  
  210.           rr    Newline action.  This option toggles between three
  211.                cases.  The default is no action.  If this option
  212.                is used once, after each command which is ter-
  213.                minated by a newline character is completed, the
  214.                current cell will be moved down one row.  If this
  215.                option is used again, after each command which is
  216.                terminated by a newline character is completed,
  217.                the current cell will be moved right one column.
  218.                Another use of this option will restore the
  219.                default action.
  220.  
  221.           zz    Set newline action limits.  This option sets lim-
  222.                its to the newline action option above.  When this
  223.                option is invoked, the row and column of the
  224.                current cell are remembered.  If a later newline
  225.                action would take the current cell to the right of
  226.                the remembered column, then the current cell is
  227.                instead moved to the first column of the next row.
  228.                If a newline action would take the current cell
  229.                below the remembered row, then the current cell is
  230.                instead moved to the top row of the next column.
  231.  
  232.           The quick numeric entry, newline action and set newline
  233.           action limits options can be combined to allow very
  234.           quick entry of large amounts of data.  If all the data
  235.           to be entered is in a single row or column then setting
  236.           the quick numeric entry and the appropriate newline
  237.           action will allow the numbers to be entered without any
  238.           explicit commands to position the current cell or enter
  239.           a number.
  240.  
  241.           If the data entry involves several entries in each row
  242.           for many rows, then setting the quick numeric entry
  243.           option, setting the newline action to move right after
  244.           each entry and setting the newline action limits on the
  245.           last column on which data should be entered will allow
  246.           the data to entered quickly.  If necessary, columns
  247.           which do not need data to be entered can be hidden with
  248.           the zz command.  Similar arrangements can be made for
  249.           entering several rows of data in each column.
  250.  
  251.      SS    Set options.  This command allows you to set various
  252.           options.  A small menu lists the options that cannot be
  253.           changed through ^_T above.
  254.  
  255.           bbyyrroowwss/bbyyccoollss
  256.                Specify the order cell evaluation when updating.
  257.                These options also affect the order in which cells
  258.  
  259.  
  260.  
  261. Sprite v1.0                                                     4
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. SC                   UNKNOWN MANUAL SECTION                   SC
  269.  
  270.  
  271.  
  272.                are filled (see /_f) and whether a row or column is
  273.                cleared by an _x command.
  274.  
  275.           iitteerraattiioonnss=_n
  276.                Set the maximum number of recalculations before
  277.                the screen is displayed again. _I_t_e_r_a_t_i_o_n_s is set
  278.                to 10 by default.
  279.  
  280.           ttbbllssttyyllee=_s
  281.                Control the output of the _T command.  _s can be: 00
  282.                (default) to give colon delimited fields, with no
  283.                _t_b_l control lines; ttbbll to give colon delimited
  284.                fields, with _t_b_l(1) control lines; llaatteexx to give a
  285.                _L_a_T_e_X tabular environment; ssllaatteexx to give a _S_L_a_T_e_X
  286.                (_S_c_a_n_d_i_n_a_v_i_a_n _L_a_T_e_X) tabular environment; tteexx to
  287.                give a _T_e_X simple tabbed alignment with ampersands
  288.                as delimiters; and ffrraammee to give a tblstyle output
  289.                for FrameMaker.
  290.  
  291.           Other _S_e_t options are normally used only in _s_c data
  292.           files since they are available through ^_T.  You can
  293.           also use them interactively
  294.  
  295.           aauuttooccaallcc/!!aauuttooccaallcc
  296.                Set/clear auto recalculation mode.
  297.  
  298.           nnuummeerriicc/!!nnuummeerriicc
  299.                Set/clear numeric mode.
  300.  
  301.           pprreessccaallee/!!pprreessccaallee
  302.                Set/clear numeric prescale mode.
  303.  
  304.           eexxttffuunn/!!eexxttffuunn
  305.                Enable/disable external functions.
  306.  
  307.           cceellllccuurr/!!cceellllccuurr
  308.                Set/clear current cell highlighting mode.
  309.  
  310.           ttoopprrooww/!!ttoopprrooww
  311.                Set/clear top row display mode.
  312.  
  313.           rrnnddiinnffiinniittyy/!!rrnnddiinnffiinniittyy
  314.                default: round-to-even (banker's round), *.5 will
  315.                round to the closest even number; doing a 'set
  316.                rndinfinity' will round *.5 up to the next integer
  317.                (rounding to infinity).
  318.  
  319.           ccrraaccttiioonn=_n
  320.                Set the newline action.  _n can be: 00 (default) to
  321.                give no action; 11 to move down after each entry;
  322.                or 22 to move right after each entry.
  323.  
  324.  
  325.  
  326.  
  327. Sprite v1.0                                                     5
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. SC                   UNKNOWN MANUAL SECTION                   SC
  335.  
  336.  
  337.  
  338.           rroowwlliimmiitt=_n
  339.                Set the remembered limit for the maximum row below
  340.                which the current cell will be moved to the top of
  341.                the next column if the newline action is set to
  342.                move the current cell down.  _n can be --11 (default)
  343.                to disable this facility.
  344.  
  345.           ccoolllliimmiitt=_n
  346.                Set the remembered limit for the maximum column to
  347.                the right of which the current cell will be moved
  348.                to the left of the next row if the newline action
  349.                is set to move the current cell right.  _n can be
  350.                --11 (default) to disable this facility.
  351.  
  352.      CCuurrssoorr CCoonnttrrooll CCoommmmaannddss
  353.  
  354.      ^^PP   Move the cell cursor up to the previous row.
  355.  
  356.      ^^NN   Move the cell cursor down to the next row.
  357.  
  358.      ^^BB   Move the cell cursor backward one column.
  359.  
  360.      ^^FF   Move the cell cursor forward one column.
  361.  
  362.      hh,, jj,, kk,, ll
  363.           If the character cursor is not on the top line, these
  364.           are alternate, _v_i-compatible cell cursor controls
  365.           (left, down, up, right).  Space is just like l (right).
  366.  
  367.      HH,, JJ,, KK,, LL
  368.           If the character cursor is not on the top line, these
  369.           move the cursor by half pages (left, down, up, right).
  370.  
  371.      ^^HH   If the character cursor is not on the top line, ^_H is
  372.           the same as ^_B.
  373.  
  374.      SSPPAACCEE
  375.           If the character cursor is not on the top line, the
  376.           space bar is the same as ^_F.
  377.  
  378.      TTAABB  If the character cursor is on the top line, TAB starts
  379.           a range (see below).  Otherwise, it is the same as ^_F.
  380.  
  381.      AArrrrooww KKeeyyss
  382.           The terminal's arrow keys provide another alternate set
  383.           of cell cursor controls if they exist and are supported
  384.           in the appropriate _t_e_r_m_c_a_p entry.  Some terminals have
  385.           arrow keys which conflict with other control key codes.
  386.           For example, a terminal might send ^_H when the back
  387.           arrow key is pressed.  In these cases, the conflicting
  388.           arrow key performs the same function as the key combi-
  389.           nation it mimics.
  390.  
  391.  
  392.  
  393. Sprite v1.0                                                     6
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. SC                   UNKNOWN MANUAL SECTION                   SC
  401.  
  402.  
  403.  
  404.      ^^    Move the cell cursor up to row 0 of the current column.
  405.  
  406.      ##    Move the cell cursor down to the last valid row of the
  407.           current column.
  408.  
  409.      00    Move the cell cursor backward to column A of the
  410.           current row.  This command must be prefixed with ^_U if
  411.           quick numeric entry mode is enabled.
  412.  
  413.      $$    Move the cell cursor forward to the last valid column
  414.           of the current row.
  415.  
  416.      bb    Scan the cursor backward (left and up) to the previous
  417.           valid cell.
  418.  
  419.      ww    Scan the cursor forward (right and down) to the next
  420.           valid cell.
  421.  
  422.      ^^EE_d  Go to end of range.  Follow ^_E by a direction indicator
  423.           such as ^_P or _j.  If the cell cursor starts on a non-
  424.           blank cell, it goes in the indicated direction until
  425.           the last non-blank adjacent cell.  If the cell cursor
  426.           starts on a blank cell, it goes in the indicated direc-
  427.           tion until the first non-blank cell.  This command is
  428.           useful when specifying ranges of adjacent cells (see
  429.           below), especially when the range is bigger than the
  430.           visible window.
  431.  
  432.      gg    Go to a cell.  _s_c prompts for a cell's name, a regular
  433.           expression surrounded by quotes, or a number.  If a
  434.           cell's name such as _a_e_1_2_2 or a the name of a defined
  435.           range is given, the cell cursor goes directly to that
  436.           cell.  If a quoted regular expression such as " _T_a_x
  437.           _T_a_b_l_e " or " ^_J_a_n [_0-_9]*$ " is given, _s_c searches for a
  438.           cell containing a string matching the regular expres-
  439.           sion.  See _r_e_g_e_x(_3) or _e_d(_1) for more details on the
  440.           form of regular expressions.  If a number is given, _s_c
  441.           will search for a cell containing that number.
  442.           Searches for either strings or numbers proceed forward
  443.           from the current cell, wrapping back to a0 at the end
  444.           of the table, and terminate at the current cell if the
  445.           string or number is not found.  You may also go to a
  446.           cell with an ERROR (divide by zero, etc in this cell)
  447.           or INVALID (references a cell containing an ERROR).
  448.           _g _e_r_r_o_r will take you to the next ERROR, while
  449.           _g _i_n_v_a_l_i_d take you to the next invalid.  The last _g
  450.           command is saved, and can be re-issued by entering
  451.           _g<_r_e_t_u_r_n>.
  452.  
  453.      CCeellll EEnnttrryy aanndd EEddiittiinngg CCoommmmaannddss
  454.      Cells can contain both a numeric value and a string value.
  455.      Either value can be the result of an expression, but not
  456.  
  457.  
  458.  
  459. Sprite v1.0                                                     7
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. SC                   UNKNOWN MANUAL SECTION                   SC
  467.  
  468.  
  469.  
  470.      both at once, i.e. each cell can have only one expression
  471.      associated with it.  Entering a valid numeric expression
  472.      alters the cell's previous numeric value, if any, and
  473.      replaces the cell's previous string expression, if any,
  474.      leaving only the previously computed constant label string.
  475.      Likewise, entering a valid string expression alters the
  476.      cell's the previous label string, if any, and replaces the
  477.      cell's previous numeric expression, if any, leaving only the
  478.      previously computed constant numeric value.
  479.  
  480.      ==    Enter a numeric constant or expression into the current
  481.           cell.  _s_c prompts for the expression on the top line.
  482.           The usual way to enter a number into a cell is to type
  483.           ``='', then enter the number in response to the prompt
  484.           on the top line.  The quick numeric entry option,
  485.           enabled through the --nn option or ^_T command, shows the
  486.           prompt when you enter the first digit of a number (you
  487.           can skip typing ``='').
  488.  
  489.      <<    Enter a label string into the current cell to be
  490.           flushed left against the left edge of the cell.
  491.  
  492.      ""    Enter a label string into the current cell to be cen-
  493.           tered in the column.
  494.  
  495.      >>    Enter a label string into the current cell to be
  496.           flushed right against the right edge of the cell.
  497.  
  498.      FF    Enter a format string into the current cell.  This for-
  499.           mat string overrides the precision specified with the
  500.           ``f'' command.  The format only applies to numeric
  501.           values.  The following characters can be used to build
  502.           a format string:
  503.  
  504.           ##    Digit placeholder.  If the number has fewer digits
  505.                on either side of the decimal point than  there
  506.                are `#' characters in the format, the extra `#'
  507.                characters are ignored.  The number is rounded to
  508.                the number of digit placeholders as there are to
  509.                the right of the decimal point.  If there are more
  510.                digits in the number than there are digit place-
  511.                holders on the left side of the decimal point,
  512.                then those digits are displayed.
  513.  
  514.           00    Digit placeholder.  Same as for `#' except that
  515.                the number is padded with zeroes on either side of
  516.                the decimal point.  The number of zeroes used in
  517.                padding is determined by the number of digit
  518.                placeholders after the `0' for digits on the left
  519.                side of the decimal point and by the number of
  520.                digit placeholders before the `0' for digits on
  521.                the right side of the decimal point.
  522.  
  523.  
  524.  
  525. Sprite v1.0                                                     8
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. SC                   UNKNOWN MANUAL SECTION                   SC
  533.  
  534.  
  535.  
  536.           ..    Decimal point.  Determines how many digits are
  537.                placed on the right and left sides of the decimal
  538.                point in the number.  Note that numbers smaller
  539.                than 1 will begin with a decimal point if the left
  540.                side of the decimal point contains only a `#'
  541.                digit placeholder.  Use a `0' placeholder to get a
  542.                leading zero in decimal formats.
  543.  
  544.           %%    Percentage.  For each `%' character in the format,
  545.                the actual number gets multiplied by 100 (only for
  546.                purposes of formatting -- the original number is
  547.                left unmodified) and the `%' character is placed
  548.                in the same position as it is in the format.
  549.  
  550.           ,,    Thousands separator.  The presence of a `,' in the
  551.                format (multiple commas are treated as one) will
  552.                cause the number to be formatted with a `,'
  553.                separating each set of three digits in the integer
  554.                part of the number with numbering beginning from
  555.                the right end of the integer.
  556.  
  557.           \\    Quote.  This character causes the next character
  558.                to be inserted into the formatted string directly
  559.                with no special interpretation.
  560.  
  561.           EE-- EE++ ee-- ee++
  562.                Scientific format.  Causes the number to formatted
  563.                in scientific notation.  The case of the `E' or
  564.                `e' given is preserved.  If the format uses a `+',
  565.                then the sign is always given for the exponent
  566.                value.  If the format uses a `-', then the sign is
  567.                only given when the exponent value is negative.
  568.                Note that if there is no digit placeholder follow-
  569.                ing the `+' or `-', then that part of the format-
  570.                ted number is left out.  In general, there should
  571.                be one or more digit placeholders after the `+' or
  572.                `-'.
  573.  
  574.           ;;    Format selector.  Use this character to separate
  575.                the format into two distinct formats.  The format
  576.                to the left of the `;' character will be used if
  577.                the number given is zero or positive.  The format
  578.                to the right of the `;' character is used if the
  579.                number given is negative.
  580.  
  581.           Some example formats are integer (``0'' or ``#''),
  582.           fixed (``0.00''), percentage (``0%'' or ``0.00%''),
  583.           scientific (``0.00E+00''), and currency
  584.           (``$#,0.00;($#,0.00)'').
  585.  
  586.      Strings you enter must start with ".  You can leave off the
  587.      trailing " and _s_c will add it for you.  You can also enter a
  588.  
  589.  
  590.  
  591. Sprite v1.0                                                     9
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. SC                   UNKNOWN MANUAL SECTION                   SC
  599.  
  600.  
  601.  
  602.      string expression by backspacing over the opening " in the
  603.      prompt.
  604.  
  605.      ee    Edit the value associated with the current cell.  This
  606.           is identical to ``='' except that the command line
  607.           starts out containing the old numeric value or expres-
  608.           sion associated with the cell.  The editing in this
  609.           mode is vi-like.
  610.  
  611.           ^^hh   Move back a character
  612.  
  613.           ++    Forward through history (neat) (same as j)
  614.  
  615.           --    Backward through history (neat) (same as k)
  616.  
  617.           EESSCC  Done editing
  618.  
  619.           TTAABB  Mark && append a range (ex: A0:A0)
  620.                TAB, move around within a range; TAB, append range
  621.                string.
  622.  
  623.           CCRR   Save
  624.  
  625.           $$    Goto last column
  626.  
  627.           ..    Insert current dot buffer
  628.  
  629.           //    Search for a string in the history
  630.                EESSCC  edit the string you typed
  631.                CCRR   search
  632.                ^^hh   backspace
  633.  
  634.           00    Goto column 0
  635.  
  636.           DD    Delete to send
  637.  
  638.           II    Insert at column 0; ESC revert back to edit mode
  639.  
  640.           RR    Replace mode; ESC revert back to edit mode
  641.  
  642.           XX    Delete the char to the left
  643.  
  644.           aa    Append after cursor; ESC revert back to edit mode
  645.  
  646.           bb    Move back a word
  647.  
  648.           cc    Change mode; ESC revert back to edit mode
  649.  
  650.           dd    Delete ...
  651.                bb    back word
  652.                ff    forward (right)
  653.                hh    back char
  654.  
  655.  
  656.  
  657. Sprite v1.0                                                    10
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. SC                   UNKNOWN MANUAL SECTION                   SC
  665.  
  666.  
  667.  
  668.                ll    forward
  669.                tt    delete forward up to a given char (next char
  670.                typed)
  671.                ww    delete next word forward
  672.  
  673.           ff    Find the next char typed
  674.  
  675.           hh    Move left a char
  676.  
  677.           ii    Insert before cursor; ESC revert back to edit mode
  678.  
  679.           jj    Forward through history (neat) (same as +)
  680.  
  681.           kk    Backward through history (neat) (same as -)
  682.  
  683.           ll    Move right a char
  684.  
  685.           nn    Continue search
  686.  
  687.           qq    Stop editing
  688.  
  689.           rr    Replace char
  690.  
  691.           tt    Goto a char
  692.  
  693.           uu    Undo
  694.  
  695.           ww    Forward a word
  696.  
  697.           xx    Delete the current char (moving to the right)
  698.  
  699.      EE    Edit the string associated with the current cell.  This
  700.           is identical to ``<'', ``"'', or ``>'' except that the
  701.           command line starts out containing the old string value
  702.           or expression associated with the cell.  SEE ee ABOVE.
  703.  
  704.      To enter and edit a cell's number part, use the ``='' and _e
  705.      commands.  To enter and edit a cell's string part, use the
  706.      ``<'', ``"'', ``>'', and _E commands.  See the sections below
  707.      on numeric and string expressions for more information.
  708.  
  709.      xx    Clear the current cell.  Deletes the numeric value,
  710.           label string, and/or numeric or string expression.  You
  711.           can prefix this command with a count of the number of
  712.           cells on the current row to clear.  The current column
  713.           is used if column recalculation order is set.  Cells
  714.           cleared with this command may be recalled with any of
  715.           the _p_u_l_l commands (see below).
  716.  
  717.      mm    Mark a cell to be used as the source for the _c_o_p_y com-
  718.           mand.
  719.  
  720.  
  721.  
  722.  
  723. Sprite v1.0                                                    11
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. SC                   UNKNOWN MANUAL SECTION                   SC
  731.  
  732.  
  733.  
  734.      cc    Copy the last marked cell to the current cell, updating
  735.           row and column references in its numeric or string
  736.           expression, if any.
  737.  
  738.      ++    If not in numeric mode, add the current numeric argu-
  739.           ment (default 1) to the value of the current cell.  In
  740.           numeric mode, ``+'' introduces a new numeric expression
  741.           or value, the same as ``=''.
  742.  
  743.      --    If not in numeric mode, subtract the current numeric
  744.           argument (default 1) from the value of the current
  745.           cell.  In numeric mode, ``-'' introduces a new, nega-
  746.           tive, numeric expression or value, like ``=''.
  747.  
  748.      RREETTUURRNN
  749.           If you are not editing a cell (top line is empty),
  750.           pressing RETURN will make _s_c enter insert mode. At this
  751.           point you may type any valid command or press EESSCC once
  752.           to edit.
  753.  
  754.      FFiillee CCoommmmaannddss
  755.  
  756.      GG    Get a new database from a file.  If encryption is
  757.           enabled, the file is decrypted before it is loaded into
  758.           the spreadsheet.
  759.  
  760.      PP    Put the current database into a file.  If encryption is
  761.           enabled, the file is encrypted before it is saved.
  762.  
  763.      WW    Write a listing of the current database into a file in
  764.           a form that matches its appearance on the screen.  This
  765.           differs from the _P_u_t command in that its files are
  766.           intended to be reloaded with _G_e_t, while _W_r_i_t_e produces
  767.           a file for people to look at.  Hidden rows or columns
  768.           are not shown when the data is printed.
  769.  
  770.      TT    Write a listing of the current database to a file, but
  771.           include delimiters suitable for processing by the _t_b_l,
  772.           _L_a_T_e_X, or _T_e_X table processors.  The delimiters are
  773.           controlled by the _t_b_l_s_t_y_l_e option.  See _S_e_t above.  The
  774.           delimiters are are a colon (:) for style _0 or _t_b_l and
  775.           an ampersand (&) for style _l_a_t_e_x or _t_e_x.
  776.  
  777.      With the _P_u_t, _W_r_i_t_e, and _T_a_b_l_e commands, the optional range
  778.      argument writes a subset of the spreadsheet to the output
  779.      file.
  780.  
  781.      With the _W_r_i_t_e and _T_a_b_l_e commands, if you try to write to
  782.      the last file used with the _G_e_t or _P_u_t commands, or the file
  783.      specified on the command line when _s_c was invoked, you are
  784.      asked to confirm that the (potentially) dangerous operation
  785.      is really what you want.
  786.  
  787.  
  788.  
  789. Sprite v1.0                                                    12
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. SC                   UNKNOWN MANUAL SECTION                   SC
  797.  
  798.  
  799.  
  800.      The three output commands, _P_u_t, _W_r_i_t_e, and _T_a_b_l_e, can pipe
  801.      their (unencrypted only) output to a program.  To use this
  802.      feature, enter ``| program'' to the prompt asking for a
  803.      filename.  For example, to redirect the output of the _W_r_i_t_e
  804.      command to the printer, you might enter ``| lpr -p''.
  805.  
  806.      MM    Merge the database from the named file into the current
  807.           database.  Values and expressions defined in the named
  808.           file are read into the current spreadsheet overwriting
  809.           the existing entries at matching cell locations.
  810.  
  811.      RR    Run macros.  Since _s_c files are saved as ASCII files,
  812.           it is possible to use them as primitive macro defini-
  813.           tion files.  The _R_u_n command makes this easier.  It's
  814.           like the _M_e_r_g_e command, but prints a saved path name as
  815.           the start of the filename to merge in.  The string to
  816.           use is set with the _D_e_f_i_n_e command.  To write macros,
  817.           you must be familiar with the file format written by
  818.           the _P_u_t command.  This facility is still primitive and
  819.           could be much improved.
  820.  
  821.      DD    Define a path for the _R_u_n command to use.
  822.  
  823.      All file operations take a filename as the first argument to
  824.      the prompt on the top line.  The prompt supplies a " to aid
  825.      in typing in the filename.  The filename can also be
  826.      obtained from a cell's label string or string expression.
  827.      In this case, delete the leading " with the backspace key
  828.      and enter a cell name such as _a_2_2 instead.  If the resulting
  829.      string starts with ``|'', the rest of the string is inter-
  830.      preted as a UNIX command, as above.
  831.  
  832.      RRooww aanndd CCoolluummnn CCoommmmaannddss
  833.      These commands can be used on either rows or columns.  The
  834.      second letter of the command is either a row designator (one
  835.      of the characters _r, ^_B, ^_F, _h, _l) or a column designator
  836.      (one of _c, ^_P, ^_N, _k, _j).  A small menu lists the choices
  837.      for the second letter when you type the first letter of one
  838.      of these commands.  Commands which move or copy cells also
  839.      modify the row and column references in affected cell
  840.      expressions.  The references may be frozen by using the
  841.      _f_i_x_e_d operator or using the $ character in the reference to
  842.      the cell (see below).
  843.  
  844.      iirr,, iicc
  845.           Insert a new row (column) by moving the row (column)
  846.           containing the cell cursor, and all following rows
  847.           (columns), down (right) one row (column).  The new row
  848.           (column) is empty.
  849.  
  850.      aarr,, aacc
  851.           Append a new row (column) immediately following the
  852.  
  853.  
  854.  
  855. Sprite v1.0                                                    13
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862. SC                   UNKNOWN MANUAL SECTION                   SC
  863.  
  864.  
  865.  
  866.           current row (column).  It is initialized as a copy of
  867.           the current one.
  868.  
  869.      ddrr,, ddcc
  870.           Delete the current row (column).
  871.  
  872.      pprr,, ppcc,, ppmm
  873.           Pull deleted rows (columns) back into the spreadsheet.
  874.           The last deleted set of cells is put back into the
  875.           spreadsheet at the current location.  _p_r inserts enough
  876.           rows to hold the data.  _p_c inserts enough columns to
  877.           hold the data.  _p_m (merge) does not insert rows or
  878.           columns; it overwrites the cells beginning at the
  879.           current cell cursor location.
  880.  
  881.      vvrr,, vvcc
  882.           Remove expressions from the affected rows (columns),
  883.           leaving only the values which were in the cells before
  884.           the command was executed.
  885.  
  886.      zzrr,, zzcc
  887.           Hide (``zap'') the current row (column).  This keeps a
  888.           row (column) from being displayed but keeps it in the
  889.           data base.  The status of the rows and columns is saved
  890.           with the data base so hidden rows and columns will be
  891.           still be hidden when you reload the spreadsheet.  Hid-
  892.           den rows or columns are not printed by the _W command.
  893.  
  894.      ssrr,, sscc
  895.           Show hidden rows (columns).  Enter a range of rows
  896.           (columns) to be revealed.  The default is the first
  897.           range of rows (columns) currently hidden.  This command
  898.           ignores the repeat count, if any.
  899.  
  900.      ff    Set the output format to be used for printing the
  901.           numeric values in each cell in the current column.
  902.           Enter three numbers: the total width in characters of
  903.           the column, the number of digits to follow decimal
  904.           points, and the format type.  Format types are 0 for
  905.           fixed point, 1 for scientific notation, 2 for engineer-
  906.           ing notation, and 3 for dates.  Values are rounded off
  907.           to the least significant digit displayed.  The total
  908.           column width affects displays of strings as well as
  909.           numbers.  A preceding count can be used to affect more
  910.           than one column.  This command has only a column ver-
  911.           sion (no second letter).
  912.  
  913.      @@mmyyrrooww,, @@mmyyccoollAre functions that return the row or column of the
  914.           current cell respectively.  ex: The cell directly above
  915.           a cell in the D column could then be accessed by
  916.           @nval("d",@myrow-1).  NOTE: @myrow and @mycol can't be
  917.  
  918.  
  919.  
  920.  
  921. Sprite v1.0                                                    14
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928. SC                   UNKNOWN MANUAL SECTION                   SC
  929.  
  930.  
  931.  
  932.           used in specifying ranges.
  933.  
  934.      RRaannggee CCoommmmaannddss
  935.      Range operations affect a rectangular region on the screen
  936.      defined by the upper left and lower right cells in the
  937.      region.  All of the commands in this class start with a
  938.      slash; the second letter of the command indicates which com-
  939.      mand.  A small menu lists the choices for the second letter
  940.      when you type ``/''.  _s_c prompts for needed parameters for
  941.      each command.  Phrases surrounded by square brackets in the
  942.      prompt are informational only and may be erased with the
  943.      backspace key.
  944.  
  945.      Prompts requesting variable names may be satisfied with
  946.      either an explicit variable name, such as _A_1_0, or with a
  947.      variable name previously defined in a /_d command (see
  948.      below).  Range name prompts require either an explicit range
  949.      such as _A_1_0:_B_2_0, or a range name previously defined with a
  950.      /_d command.  A default range shown in the second line is
  951.      used if you omit the range from the command or press the TAB
  952.      key (see below).  The default range can be changed by moving
  953.      the cell cursor via the control commands (^_P, ^_N, ^_B, ^_F) or
  954.      the arrow keys.  The cells in the default range are
  955.      highlighted (using the terminal's standout mode, if avail-
  956.      able).
  957.  
  958.      //xx   Clear a range.  Cells cleared with this command may be
  959.           recalled with any of the _p_u_l_l commands.
  960.  
  961.      //vv   Values only.  This command removes the expressions from
  962.           a range of cells, leaving just the values of the
  963.           expressions.
  964.  
  965.      //cc   Copy a source range to a destination range.  The source
  966.           and destination may be different sizes.  The result is
  967.           always one or more full copies of the source.  Copying
  968.           a row to a row yields a row.  Copying a column to a
  969.           column yields a column.  Copying a range to anything
  970.           yields a range.  Copying a row to a column or a column
  971.           to a row yields a range with as many copies of the
  972.           source as there are cells in the destination.  This
  973.           command can be used to duplicate a cell through an
  974.           arbitrary range by making the source a single cell
  975.           range such as _b_2_0:_b_2_0.
  976.  
  977.      //ff   Fill a range with constant values starting with a given
  978.           value and increasing by a given increment.  Each row is
  979.           filled before moving on to the next row if row order
  980.           recalculation is set.  Column order fills each column
  981.           in the range before moving on to the next column.  The
  982.           start and increment numbers may be positive or nega-
  983.           tive.  To fill all cells with the same value, give an
  984.  
  985.  
  986.  
  987. Sprite v1.0                                                    15
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994. SC                   UNKNOWN MANUAL SECTION                   SC
  995.  
  996.  
  997.  
  998.           increment of zero.
  999.  
  1000.      //dd   Use this command to assign a symbolic name to a single
  1001.           cell or a rectangular range of cells on the screen.
  1002.           The parameters are the name, surrounded by "", and
  1003.           either a single cell name such as _A_1_0 or a range such
  1004.           as _a_1:_b_2_0.  Names defined in this fashion are used by
  1005.           the program in future prompts, may be entered in
  1006.           response to prompts requesting a cell or range name,
  1007.           and are saved when the spreadsheet is saved with the
  1008.           _P_u_t command.  Names defined must be more than two alpha
  1009.           characters long to differentiate them from a column
  1010.           names, and must not have embedded special characters.
  1011.           Names may include the character ``_'' or numerals as
  1012.           long as they occur after the first three alpha charac-
  1013.           ters.
  1014.  
  1015.      //ll   Use this command to lock the current cell or a range of
  1016.           cells, i.e make them immune to any type of editing. A
  1017.           locked cell can't be changed in anyway until it is
  1018.           unlocked.
  1019.  
  1020.      //UU   This command is the opposite of the /_l command and thus
  1021.           unlocks a locked cell and makes it editable.
  1022.  
  1023.      //ss   This command lists (shows) the currently defined range
  1024.           names.  If there are no defined range names, then a
  1025.           message is given, otherwise it pipes output to _s_o_r_t,
  1026.           then to _l_e_s_s.  If the environment variable PAGER is
  1027.           set, its value is used in place of _l_e_s_s.
  1028.  
  1029.      //uu   Use this command to undefine a previously defined range
  1030.           name.
  1031.  
  1032.      //FF   Use this command to assign a value format string (see
  1033.           the ``F'' cell entry command) to a range of cells.
  1034.  
  1035.      MMiisscceellllaanneeoouuss CCoommmmaannddss
  1036.  
  1037.      QQ
  1038.      qq
  1039.      ^^CC   Exit from _s_c.  If you made any changes since the last
  1040.           _G_e_t or _P_u_t, _s_c asks about saving your data before exit-
  1041.           ing.
  1042.  
  1043.      ^^GG
  1044.      EESSCC  Abort entry of the current command.
  1045.  
  1046.      ??    Enter an interactive help facility.  Lets you look up
  1047.           brief summaries of the main features of the program.
  1048.           The help facility is structured like this manual page
  1049.           so it is easy to find more information on a particular
  1050.  
  1051.  
  1052.  
  1053. Sprite v1.0                                                    16
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. SC                   UNKNOWN MANUAL SECTION                   SC
  1061.  
  1062.  
  1063.  
  1064.           topic.
  1065.  
  1066.      !!    Shell escape.  _s_c prompts for a shell command to run.
  1067.           End the command line with the RETURN key.  If the
  1068.           environment variable SHELL is defined, that shell is
  1069.           run.  If not, /bin/sh is used.  Giving a null command
  1070.           line starts the shell in interactive mode.  A second
  1071.           ``!'' repeats the previous command.
  1072.  
  1073.      ^^LL   Redraw the screen.
  1074.  
  1075.      ^^RR   Redraw the screen with special highlighting of cells to
  1076.           be filled in.  This is useful for finding values you
  1077.           need to provide or update in a form with which you
  1078.           aren't familiar or of which you have forgotten the
  1079.           details.
  1080.  
  1081.           It's also useful for checking a form you are creating.
  1082.           All cells which contain constant numeric values (not
  1083.           the result of a numeric expression) are highlighted
  1084.           temporarily, until the next screen change, however
  1085.           minor.  To avoid ambiguity, the current range (if any)
  1086.           and current cell are not highlighted.
  1087.  
  1088.      ^^XX   This command is similar to ^_R, but highlights cells
  1089.           which have expressions.  It also displays the expres-
  1090.           sions in the highlighted cells as left-flushed strings,
  1091.           instead of the numeric values and/or label strings of
  1092.           those cells.  This command makes it easier to check
  1093.           expressions, at least when they fit in their cells or
  1094.           the following cell(s) are blank so the expressions can
  1095.           slop over (like label strings).  In the latter case,
  1096.           the slop over is not cleared on the next screen update,
  1097.           so you may want to type ^_L after the ^_X in order to
  1098.           clean up the screen.
  1099.  
  1100.      @@    Recalculates the spreadsheet.
  1101.  
  1102.      ^^VV   Type, in the command line, the name of the current cell
  1103.           (the one at the cell cursor).  This is useful when
  1104.           entering expressions which refer to other cells in the
  1105.           table.
  1106.  
  1107.      ^^WW   Type, in the command line, the expression attached to
  1108.           the current cell.  If there is none, the result is
  1109.           ``?''.
  1110.  
  1111.      ^^AA   Type, in the command line, the numeric value of the
  1112.           current cell, if any.
  1113.  
  1114.      The ^_V, ^_W, and ^_A commands only work when the character
  1115.      cursor is on the command line and beyond the first
  1116.  
  1117.  
  1118.  
  1119. Sprite v1.0                                                    17
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. SC                   UNKNOWN MANUAL SECTION                   SC
  1127.  
  1128.  
  1129.  
  1130.      character.
  1131.  
  1132.      TTAABB  When the character cursor is on the top line, defines a
  1133.           range of cells via the cursor control commands or the
  1134.           arrow keys.  The range is highlighted, starts at the
  1135.           cell where you typed TAB, and continues through the
  1136.           current cell cursor.  Pressing TAB again causes the
  1137.           highlighted range to be entered into the command line
  1138.           and the highlighting to be turned off.  This is most
  1139.           useful for defining ranges to functions such as @_s_u_m().
  1140.           Pressing ``)'' acts just like typing the TAB key the
  1141.           second time and adds the closing ``)''.  Note that when
  1142.           you give a range command, you don't need to press the
  1143.           first TAB to begin defining a range starting with the
  1144.           current cell.
  1145.  
  1146.      VVaarriiaabbllee NNaammeess
  1147.      Normally, a variable name is just the name of a cell, such
  1148.      as _K_2_0.  The value is the numeric or string value of the
  1149.      cell, according to context.
  1150.  
  1151.      When a cell's expression (formula) is copied to another
  1152.      location via _c_o_p_y or _r_a_n_g_e-_c_o_p_y, variable references are by
  1153.      default offset by the amount the formula moved.  This allows
  1154.      the new formula to work on new data.  If cell references are
  1155.      not to change, you can either use the _f_i_x_e_d operator (see
  1156.      below), or one of the following variations on the cell name.
  1157.  
  1158.      _K_2_0  References cell _K_2_0; the reference changes when the
  1159.           formula is copied.
  1160.  
  1161.      $$_K$$_2_0
  1162.           Always refers to cell _K_2_0; the reference stays fixed
  1163.           when the formula is copied.
  1164.  
  1165.      $$_K_2_0 Keeps the column fixed at column K; the row is free to
  1166.           vary.
  1167.  
  1168.      _K$$_2_0 Similarly, this fixes the row and allows the column to
  1169.           vary.
  1170.  
  1171.      These conventions also hold on defined ranges.  Range refer-
  1172.      ences vary when formulas containing them are copied.  If the
  1173.      range is defined with fixed variable references, the refer-
  1174.      ences do not change.
  1175.  
  1176.      ffiixxeedd
  1177.           To make a variable not change automatically when a cell
  1178.           moves, put the word _f_i_x_e_d in front of the reference,
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185. Sprite v1.0                                                    18
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. SC                   UNKNOWN MANUAL SECTION                   SC
  1193.  
  1194.  
  1195.  
  1196.           for example: B1 * fixed C3.
  1197.  
  1198.      NNuummeerriicc EExxpprreessssiioonnss
  1199.      Numeric expressions used with the ``='' and _e commands have
  1200.      a fairly conventional syntax.  Terms may be constants, vari-
  1201.      able names, parenthesized expressions, and negated terms.
  1202.      Ranges may be operated upon with range functions such as sum
  1203.      (@_s_u_m()) and average (@_a_v_g()).  Terms may be combined using
  1204.      binary operators.
  1205.  
  1206.      --e   Negation.
  1207.  
  1208.      e++e  Addition.
  1209.  
  1210.      e--e  Subtraction.
  1211.  
  1212.      e**e  Multiplication.
  1213.  
  1214.      e//e  Division.
  1215.  
  1216.      e1%%e2
  1217.           e1 mod e2.
  1218.  
  1219.      e^^e  Exponentiation.
  1220.  
  1221.      e<<e
  1222.      e<<==e
  1223.      e==e
  1224.      e!!==e
  1225.      e>>==e
  1226.      e>>e  Relationals: true (1) if and only if the indicated
  1227.           relation holds, else false (0).  Note that ``<='',
  1228.           ``!='', and ``>='' are converted to their ``~()''
  1229.           equivalents.
  1230.  
  1231.      ~~e   Boolean operator NOT.
  1232.  
  1233.      e&&e  Boolean operator AND.
  1234.  
  1235.      e||e  Boolean operator OR.
  1236.  
  1237.      @if((ee,,e,ee))
  1238.      e??e::e
  1239.           Conditional: If the first expression is true then the
  1240.           value of the second is returned, otherwise the value of
  1241.           the third.
  1242.      Operator precedence from highest to lowest is:
  1243.           -, ~
  1244.           ^
  1245.           *, /
  1246.           +, -
  1247.           <, <=, =, !=, >=, >
  1248.  
  1249.  
  1250.  
  1251. Sprite v1.0                                                    19
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258. SC                   UNKNOWN MANUAL SECTION                   SC
  1259.  
  1260.  
  1261.  
  1262.           &
  1263.           |
  1264.           ?:
  1265.      BBuuiilltt--iinn RRaannggee FFuunnccttiioonnss
  1266.      These functions return numeric values.
  1267.      @@ssuumm(r)           Sum all valid (nonblank) entries in the
  1268.                        region whose two corners are defined by
  1269.                        the two variable names (e.g.  _c_5:_e_1_4) or
  1270.                        the range name specified.
  1271.      @@pprroodd(r)          Multiply together all valid (nonblank)
  1272.                        entries in the specified region.
  1273.      @@aavvgg(r)           Average all valid (nonblank) entries in
  1274.                        the specified region.
  1275.      @@ccoouunntt(r)         Count all valid (nonblank) entries in the
  1276.                        specified region.
  1277.      @@mmaaxx(r)           Return the maximum value in the specified
  1278.                        region.  See also the multi argument ver-
  1279.                        sion of @_m_a_x below.
  1280.      @@mmiinn(r)           Return the minimum value in the specified
  1281.                        region.  See also the multi argument ver-
  1282.                        sion of @_m_i_n below.
  1283.      @@ssttddddeevv(r)        Return the sample standard deviation of
  1284.                        the cells in the specified region.
  1285.      @@llooookkuupp(e,r)
  1286.      @@llooookkuupp(se,r)     Evaluates the expression then searches
  1287.                        through the range _r for a matching value.
  1288.                        The range should be either a single row or
  1289.                        a single column.  The expression can be
  1290.                        either a string expression or a numeric
  1291.                        expression.  If it is a numeric expres-
  1292.                        sion, the range is searched for the the
  1293.                        last value less than or equal to _e.  If
  1294.                        the expression is a string expression, the
  1295.                        string portions of the cells in the range
  1296.                        are searched for an exact string match.
  1297.                        The value returned is the numeric value
  1298.                        from the next row and the same column as
  1299.                        the match, if the range was a single row,
  1300.                        or the value from the next column and the
  1301.                        same row as the match if the range was a
  1302.                        single column.
  1303.  
  1304.      @@hhllooookkuupp(e,r,n)
  1305.      @@hhllooookkuupp(se,r,n)  Evaluates the expression then searches
  1306.                        through the first row in the range _r for a
  1307.                        matching value.  The expression can be
  1308.                        either a string expression or a numeric
  1309.                        expression.  If it is a numeric expres-
  1310.                        sion, the row is searched for the the last
  1311.                        value less than or equal to _e.  If the
  1312.                        expression is a string expression, the
  1313.                        string portions of the cells in the row
  1314.  
  1315.  
  1316.  
  1317. Sprite v1.0                                                    20
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324. SC                   UNKNOWN MANUAL SECTION                   SC
  1325.  
  1326.  
  1327.  
  1328.                        are searched for an exact string match.
  1329.                        The value returned is the numeric value
  1330.                        from the same column _n rows below the
  1331.                        match.
  1332.  
  1333.      @@vvllooookkuupp(e,r,n)
  1334.      @@vvllooookkuupp(se,r,n)  Evaluates the expression then searches
  1335.                        through the first column in the range _r
  1336.                        for a matching value.  The expression can
  1337.                        be either a string expression or a numeric
  1338.                        expression.  If it is a numeric expres-
  1339.                        sion, the column is searched for the the
  1340.                        last value less than or equal to _e.  If
  1341.                        the expression is a string expression, the
  1342.                        string portions of the cells in the column
  1343.                        are searched for an exact string match.
  1344.                        The value returned is the numeric value
  1345.                        from the same row _n columns to the right
  1346.                        of the match.
  1347.  
  1348.      @@iinnddeexx(e,r)       Use the value of the expression _e to index
  1349.                        into the range _r.  The numeric value at
  1350.                        that position is returned. The value 1
  1351.                        selects the first item in the range, 2
  1352.                        selects the second item, etc.  _R should be
  1353.                        either a single row or a single column.
  1354.  
  1355.      @@ssttiinnddeexx(e,r)     Use the value of _e to index into the range
  1356.                        _r.  The string value at that position is
  1357.                        returned. The value 1 selects the first
  1358.                        item in the range, 2 selects the second
  1359.                        item, etc.  The range should be either a
  1360.                        single row or a single column.
  1361.  
  1362.      BBuuiilltt--iinn NNuummeerriicc FFuunnccttiioonnss
  1363.      All of these functions operate on floating point numbers
  1364.      (doubles) and return numeric values.  Most of them are stan-
  1365.      dard system functions more fully described in _m_a_t_h(3).  The
  1366.      trig functions operate with angles in radians.
  1367.  
  1368.      @@ssqqrrtt(e)          Return the square root of _e.
  1369.  
  1370.      @@eexxpp(e)           Return the exponential function of _e.
  1371.  
  1372.      @@llnn(e)            Return the natural logarithm of _e.
  1373.  
  1374.      @@lloogg(e)           Return the base 10 logarithm of _e.
  1375.  
  1376.      @@fflloooorr(e)         Return the largest integer not greater
  1377.                        than _e.
  1378.  
  1379.      @@cceeiill(e)          Return the smallest integer not less than
  1380.  
  1381.  
  1382.  
  1383. Sprite v1.0                                                    21
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390. SC                   UNKNOWN MANUAL SECTION                   SC
  1391.  
  1392.  
  1393.  
  1394.                        _e.
  1395.  
  1396.      @@rrnndd(e)           Round _e to the nearest integer.  default:
  1397.                        round-to-even (banker's round), *.5 will
  1398.                        round to the closest even number; 'set
  1399.                        rndinfinity' will round *.5 up to the next
  1400.                        integer.
  1401.  
  1402.      @@rroouunndd(e,n)       Round _e to _n decimal places.  n may be
  1403.                        positive to round off the right side of
  1404.                        the decimal, and negative to round off the
  1405.                        left side. See @rnd(e) above for rounding
  1406.                        types.
  1407.  
  1408.      @@aabbss(e)
  1409.      @@ffaabbss(e)          Return the absolute value of _e.
  1410.      @@ppooww(e1,e2)       Return _e_1 raised to the power of _e_2.
  1411.      @@hhyyppoott(e1,e2)     Return sqrt(e1*e1+e2*e2), taking precau-
  1412.                        tions against unwarranted overflows.
  1413.      ppii  @@ppii           A constant quite close to pi.
  1414.      @@ddttrr(e)           Convert _e in degrees to radians.
  1415.      @@rrttdd(e)           Convert _e in radians to degrees.
  1416.      @@ssiinn(e)
  1417.      @@ccooss(e)
  1418.      @@ttaann(e)           Return trigonometric functions of radian
  1419.                        arguments.  The magnitude of the arguments
  1420.                        are not checked to assure meaningful
  1421.                        results.
  1422.  
  1423.      @@aassiinn(e)          Return the arc sine of _e in the range
  1424.                        -pi/2 to pi/2.
  1425.  
  1426.      @@aaccooss(e)          Return the arc cosine of _e in the range 0
  1427.                        to pi.
  1428.  
  1429.      @@aattaann(e)          Return the arc tangent of _e in the range
  1430.                        -pi/2 to pi/2.
  1431.  
  1432.      @@aattaann22(e1,e2)     Returns the arc tangent of _e_1/_e_2 in the
  1433.                        range -pi to pi.
  1434.  
  1435.      @@mmaaxx(e1,e2,...)   Return the maximum of the values of the
  1436.                        expressions.  Two or more expressions may
  1437.                        be specified.  See also the range version
  1438.                        of @_m_a_x above.
  1439.  
  1440.      @@mmiinn(e1,e2,...)   Return the minimum of the values of the
  1441.                        expressions.  Two or more expressions may
  1442.                        be specified.  See also the range version
  1443.                        of @_m_i_n above.
  1444.  
  1445.      @@ssttoonn(se)         Convert string expression _s_e to a numeric
  1446.  
  1447.  
  1448.  
  1449. Sprite v1.0                                                    22
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456. SC                   UNKNOWN MANUAL SECTION                   SC
  1457.  
  1458.  
  1459.  
  1460.                        value.
  1461.  
  1462.      @@eeqqss(se1,se2)     Return 1 if string expression _s_e_1 has the
  1463.                        same value as string expression _s_e_2, 0
  1464.                        otherwise.
  1465.  
  1466.      @@nnvvaall(se,e)       Return the numeric value of a cell
  1467.                        selected by name.  String expression _s_e
  1468.                        must evaluate to a column name (``A''-
  1469.                        ``AE'') and _e must evaluate to a row
  1470.                        number (0-199). If _s_e or _e is out of
  1471.                        bounds, or the cell has no numeric value,
  1472.                        the result is 0.  You can use this for
  1473.                        simple table lookups.  Be sure the table
  1474.                        doesn't move unexpectedly!  See also
  1475.                        @_s_v_a_l() below.
  1476.  
  1477.      SSttrriinngg EExxpprreessssiioonnss
  1478.      String expressions are made up of constant strings (charac-
  1479.      ters surrounded by double quotation marks), variables (cell
  1480.      names, which refer to the cells's label strings or expres-
  1481.      sions), and string functions.  Note that string expressions
  1482.      are only allowed when entering a cell's label string, not
  1483.      its numeric part.  Also note that string expression results
  1484.      may be left or right flushed or centered, according to the
  1485.      type of the cell's string label.
  1486.  
  1487.      ##                 Concatenate strings.  For example, the
  1488.                        string expression
  1489.  
  1490.                             A0 # "zy dog"
  1491.  
  1492.                        displays the string ``the lazy dog'' in
  1493.                        the cell if the value of _A_0's string is
  1494.                        ``the la''.
  1495.  
  1496.      BBuuiilltt--iinn SSttrriinngg FFuunnccttiioonnss
  1497.  
  1498.      @@ssuubbssttrr(se,e1,e2) Extract and return from string expression
  1499.                        _s_e the substring indexed by character
  1500.                        number _e_1 through character number _e_2
  1501.                        (defaults to the size of _s_e if beyond the
  1502.                        end of it).  If _e_1 is less than 1 or
  1503.                        greater than _e_2, the result is the null
  1504.                        string.  For example,
  1505.  
  1506.                             @substr ("Nice jacket", 4, 7)
  1507.  
  1508.                        returns the string ``e jac''.
  1509.  
  1510.      @@ffmmtt(se,e)        Convert a number to a string.  The argu-
  1511.                        ment _s_e must be a valid _p_r_i_n_t_f(3) format
  1512.  
  1513.  
  1514.  
  1515. Sprite v1.0                                                    23
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522. SC                   UNKNOWN MANUAL SECTION                   SC
  1523.  
  1524.  
  1525.  
  1526.                        string.  _e is converted according to the
  1527.                        standard rules.  For example, the expres-
  1528.                        sion
  1529.  
  1530.                             @fmt ("**%6.3f**", 10.5)
  1531.  
  1532.                        yields the string ``**10.500**''.  _e is a
  1533.                        double, so applicable formats are e, E, f,
  1534.                        g, and G.  Try ``%g'' as a starting point.
  1535.  
  1536.      @@ssvvaall(se,e)       Return the string value of a cell selected
  1537.                        by name.  String expression _s_e must evalu-
  1538.                        ate to a column name (``A''-``AE'') and _e
  1539.                        must evaluate to a row number (0-199). If
  1540.                        _s_e or _e is out of bounds, or the cell has
  1541.                        no string value, the result is the null
  1542.                        string.  You can use this for simple table
  1543.                        lookups.  Be sure the table doesn't move
  1544.                        unexpectedly!
  1545.  
  1546.      @@uuppppeerr(e)         and @@lloowweerr(e) will case the string expres-
  1547.                        sion to upper or lower.
  1548.  
  1549.      @@ccaappiittaall(e)       will convert the first letter of words in
  1550.                        a string into upper case and other letters
  1551.                        to lower case (the latter if all letters
  1552.                        of the string are upper case).
  1553.  
  1554.      @@uuppppeerr(e)         and @@lloowweerr(e) will case the string expres-
  1555.                        sion to upper or lower.
  1556.  
  1557.      @@ccaappiittaall(e)       will convert the first letter of words in
  1558.                        a string into upper case.
  1559.  
  1560.      @@eexxtt(se,e)        Call an external function (program or
  1561.                        script).  The purpose is to allow arbi-
  1562.                        trary functions on values, e.g. table
  1563.                        lookups and interpolations.  String
  1564.                        expression _s_e is a command or command line
  1565.                        to call with _p_o_p_e_n(3).  The value of _e is
  1566.                        converted to a string and appended to the
  1567.                        command line as an argument.  The result
  1568.                        of @_e_x_t() is a string: the first line
  1569.                        printed to standard output by the command.
  1570.                        The command should emit exactly one output
  1571.                        line.  Additional output, or output to
  1572.                        standard error, messes up the screen.
  1573.                        @_e_x_t() returns a null string and prints an
  1574.                        appropriate warning if external functions
  1575.                        are disabled, _s_e is null, or the attempt
  1576.                        to run the command fails.
  1577.  
  1578.  
  1579.  
  1580.  
  1581. Sprite v1.0                                                    24
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588. SC                   UNKNOWN MANUAL SECTION                   SC
  1589.  
  1590.  
  1591.  
  1592.                        External functions can be slow to run, and
  1593.                        if enabled are called at each screen
  1594.                        update, so they are disabled by default.
  1595.                        You can enable them with ^_T when you
  1596.                        really want them called.
  1597.  
  1598.                        A simple example:
  1599.  
  1600.                             @ext ("echo", a1)
  1601.  
  1602.                        You can use @_s_t_o_n() to convert the @_e_x_t()
  1603.                        result back to a number.  For example:
  1604.  
  1605.                             @ston (@ext ("form.sc.ext", a9 + b9))
  1606.  
  1607.                        Note that you can built a command line
  1608.                        (including more argument values) from a
  1609.                        string expression with concatenation.  You
  1610.                        can also "hide" the second argument by
  1611.                        ending the command line (first argument)
  1612.                        with `` #'' (shell comment).
  1613.  
  1614.      @@ccoollttooaa(e)        Returns a string name for a column from
  1615.                        the numeric argument.  For example:
  1616.  
  1617.                             @coltoa(@mycol-1)
  1618.                             @nval(coltoa(@mycol-1), @myrow+1)
  1619.  
  1620.  
  1621.  
  1622.      BBuuiilltt--iinn FFiinnaanncciiaall FFuunnccttiioonnss
  1623.      Financial functions compute the mortgage (or loan) payment,
  1624.      future value, and the present value functions.  Each accepts
  1625.      three arguments, an amount, a rate of interest (per period),
  1626.      and the number of periods.  These functions are the same as
  1627.      those commonly found in other spreadsheets and financial
  1628.      calculators
  1629.  
  1630.      @@ppmmtt(e1,e2,e3)    @_p_m_t(60000,.01,360) computes the monthly
  1631.                        payments for a $60000 mortgage at 12%
  1632.                        annual interest (.01 per month) for 30
  1633.                        years (360 months).
  1634.  
  1635.      @@ffvv(e1,e2,e3)     @_f_v(100,.005,36) computes the future value
  1636.                        for of 36 monthly payments of $100 at 6%
  1637.                        interest (.005 per month).  It answers the
  1638.                        question: "How much will I have in 36
  1639.                        months if I deposit $100 per month in a
  1640.                        savings account paying 6% interest com-
  1641.                        pounded monthly?"
  1642.  
  1643.      @@ppvv(e1,e2,e3)     @_p_v(1000,.015,36) computes the present
  1644.  
  1645.  
  1646.  
  1647. Sprite v1.0                                                    25
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654. SC                   UNKNOWN MANUAL SECTION                   SC
  1655.  
  1656.  
  1657.  
  1658.                        value of an a ordinary annuity of 36
  1659.                        monthly payments of $1000 at 18% annual
  1660.                        interest.  It answers the question: "How
  1661.                        much can I borrow at 18% for 30 years if I
  1662.                        pay $1000 per month?"
  1663.  
  1664.      BBuuiilltt--iinn DDaattee aanndd TTiimmee FFuunnccttiioonnss
  1665.      Time for _s_c follows the system standard: the number of
  1666.      seconds since 1970.  All date and time functions except
  1667.      @_d_a_t_e() return numbers, not strings.
  1668.  
  1669.      @@nnooww              Return the current time encoded as the
  1670.                        number of seconds since the beginning of
  1671.                        the epoch (December 31, 1969, midnight,
  1672.                        GMT.)
  1673.  
  1674.      @@ddttss(e1,e2,e3)    @_d_t_s(9,14,1988) converts the date Sep-
  1675.                        tember 14, 1988 to the number of seconds
  1676.                        from the epoch to the first second of
  1677.                        9/14/88, local time.  For example,
  1678.                        @_d_a_t_e(@_d_t_s(12,14,1976)) yields
  1679.  
  1680.                             _T_u_e _D_e_c _1_4 _0_0:_0_0:_0_0 _1_9_7_6
  1681.  
  1682.                        The month should be range from  1 to 12,
  1683.                        the day should range from 1 to the number
  1684.                        of days in the specified month, and the
  1685.                        year should range from 1970 to 1999.
  1686.  
  1687.      @@ttttss(e1,e2,e3)    @_t_t_s(8,20,45) converts the time 8:40:45 to
  1688.                        the number of seconds since midnight, the
  1689.                        night before.  The hour should range from
  1690.                        0 to 23; the minutes and seconds should
  1691.                        range from 0 to 59.
  1692.  
  1693.      The following functions take the time in seconds (e.g. from
  1694.      @_n_o_w) as an argument and return the specified value.  The
  1695.      functions all convert from GMT to local time.
  1696.  
  1697.      @@ddaattee(e)          Convert the time in seconds to a date
  1698.                        string 24 characters long in the following
  1699.                        form:
  1700.  
  1701.                             _S_u_n _S_e_p _1_6 _0_1:_0_3:_5_2 _1_9_7_3
  1702.  
  1703.                        Note that you can extract parts of this
  1704.                        fixed-format string with @_s_u_b_s_t_r().
  1705.  
  1706.      @@yyeeaarr(e)          Return the year.  Valid years begin with
  1707.                        1970.  The last legal year is system
  1708.                        dependent.
  1709.  
  1710.  
  1711.  
  1712.  
  1713. Sprite v1.0                                                    26
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720. SC                   UNKNOWN MANUAL SECTION                   SC
  1721.  
  1722.  
  1723.  
  1724.      @@mmoonntthh(e)         Return the month, encoded as 1 (January)
  1725.                        to 12 (December).
  1726.  
  1727.      @@ddaayy(e)           Return the day of the month, encoded as 1
  1728.                        to 31.
  1729.  
  1730.      @@hhoouurr(e)          Return the number of hours since midnight,
  1731.                        encoded as 0 to 23.
  1732.  
  1733.      @@mmiinnuuttee(e)        Return the number of minutes since the
  1734.                        last full hour, encoded as 0 to 59.
  1735.  
  1736.      @@sseeccoonndd(e)        Return the number of seconds since the
  1737.                        last full minute, encoded as 0 to 59.
  1738.  
  1739.      SSpprreeaaddsshheeeett UUppddaattee
  1740.      Re-evaluation of spreadsheet expressions is done by row or
  1741.      by column depending on the selected calculation order.
  1742.      Evaluation is repeated up to _i_t_e_r_a_t_i_o_n_s times for each
  1743.      update if necessary, so forward references usually work as
  1744.      expected.  See _s_e_t above.  If stability is not reached after
  1745.      ten iterations, a warning is printed.  This is usually due
  1746.      to a long series of forward references, or to unstable
  1747.      cyclic references (for example, set _A_0's expression to
  1748.      ``A0+1'').
  1749.  
  1750.      @@nnuummiitteerr          Returns the number of iterations performed
  1751.                        so far.
  1752.  
  1753. FFIILLEESS
  1754.      /sprite/lib/sc/tutorial.sc              tutorial spreadsheet
  1755.  
  1756. SSEEEE AALLSSOO
  1757.      bc(1), dc(1), crypt(1), psc(1)
  1758.  
  1759. BBUUGGSS
  1760.      Top-to-bottom, left-to-right evaluation of expressions is
  1761.      silly.  A proper following of the dependency graph with
  1762.      (perhaps) recourse to relaxation should be implemented.
  1763.  
  1764.      Only one previous value is saved from any call of @_e_x_t().
  1765.      If it is used more than once in a spreadsheet and external
  1766.      functions are enabled and later disabled, the last returned
  1767.      value pops up in several places.
  1768.  
  1769.      On some systems, if the cell cursor is in column 0 with top-
  1770.      line enabled (so the current cell is highlighted), or if any
  1771.      cell in column 0 is highlighted, the corresponding row
  1772.      number gets displayed and then blanked during a screen
  1773.      refresh.  This looks like a bug in _c_u_r_s_e_s.
  1774.  
  1775.      Many commands give no indication (a message or beep) if they
  1776.  
  1777.  
  1778.  
  1779. Sprite v1.0                                                    27
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786. SC                   UNKNOWN MANUAL SECTION                   SC
  1787.  
  1788.  
  1789.  
  1790.      have null effect.  Some should give confirmation of their
  1791.      action, but they don't.
  1792.  
  1793. AAUUTTHHOORRSS
  1794.      This is a much modified version of a public domain spread
  1795.      sheet originally authored by James Gosling, and subsequently
  1796.      modified and posted to USENET by Mark Weiser under the name
  1797.      _v_c.  The program was subsequently renamed _s_c, and further
  1798.      modified by numerous contributors, Jeff Buhrt of Proslink,
  1799.      Inc.  ({sequent, uunet}!sawmill!prslnk!buhrt) and Robert
  1800.      Bond of Sequent, prominent among them.  Other contributors
  1801.      include: Tom Anderson, Glenn T. Barry, Gregory Bond, Stephen
  1802.      (Steve) M. Brooks, Peter Brower, John Campbell, Lawrence
  1803.      Cipriani, Jim Clausing, Dave Close, Chris Cole, Jonathan
  1804.      Crompron, David I. Dalva, Glen Ditchfield, Sam Drake, James
  1805.      P. Dugal, Paul Eggert, Andy Fyfe, Jack Goral, Piercarlo
  1806.      "Peter" Grandi, Henk Hesselink, Jeffrey C Honig, Kurt Hor-
  1807.      ton, Jonathan I. Kamens, Peter King, Tom Kloos, Casey Lee-
  1808.      dom, Jay Lepreau, Dave Lewis, Rick Linck, Soren Lundsgaard,
  1809.      Tad Mannes, Rob McMahon, Chris Metcalf, Mark Nagel, Ulf
  1810.      Noren, Marius Olafsson, Gene H. Olson, Henk P. Penning, Rick
  1811.      Perry, Larry Philps, Eric Putz, Jim Richardson, Michael
  1812.      Richardson, R. P. C. Rodgers, Kim Sanders, Mike Schwartz,
  1813.      Alan Silverstein, Lowell Skoog, Herr Soeryantono, Tim
  1814.      Theisen, Tom Tkacik, Andy Valencia, Adri Verhoef, Rick
  1815.      Walker, Petri Wessman, and Tim Wilson.
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845. Sprite v1.0                                                    28
  1846.  
  1847.  
  1848.  
  1849.